package com.jt.demo6;

import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

@Component
/**spring自动为该注解标识的对象通过反射实例化对象，交给Spring容器管理
 * Key：类名首字母小写 user
 * value：反射的对象
 * 类似于@Bean注解
 *
 * @Component和@Bean区别
 * 1.@Component  spring容器通过反射自动创建对象
 *   @Bean       是用户自己手动创建对象
 * 2.@Component  标识类的
 *   @Bean       标识配置类中的方法
 * 3.@Component  对象的Id是类名首字母小写 key为反射的对象
 *   @Bean       对象的Id是方法名 key为返回值类型
 */

public class User {
    //1.对象创建
    public User(){
        System.out.println("用户对象创建成功");
    }
    //2.进行初始化操作
    @PostConstruct
    public void init(){
        System.out.println("属性加成");
    }
    //3.进行业务调用  业务方法，用户手动调用
    public void hello(){
        System.out.println("我爱学JAVA");
    }
    //4.销毁方法
    @PreDestroy
    public void destroy(){
        System.out.println("调用销毁方法，释放资源！！");
    }
}
